#include "pch.hpp"
#include "Cursor.hpp"

using namespace Engine;
using namespace Engine::Ui;




Cursor::Cursor(Input::Device::ptr inputDevice)
	: m_offset(0, 0)
	, m_size(32, 32)
	, m_inputDevice(inputDevice)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////

Cursor::Cursor(const Cursor& that, const int2& offset)
	: m_offset(that.m_offset + offset)
	, m_size(that.m_size)
	, m_inputDevice(that.m_inputDevice)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////




int2 Cursor::offset() const
{
	return m_offset;
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void Cursor::setOffset(const int2& offset)
{
	m_offset = offset;
}
///////////////////////////////////////////////////////////////////////////////////////////////////




int2 Cursor::pos() const
{
	return m_inputDevice->mousePositionPixels() + m_offset;
}
///////////////////////////////////////////////////////////////////////////////////////////////////

int2 Cursor::screenPos() const
{
	return m_inputDevice->mousePositionPixels();
}
///////////////////////////////////////////////////////////////////////////////////////////////////

int2 Cursor::delta() const
{
	// The mouse delta is independent of the offset
	return m_inputDevice->mouseDeltaPixels();
}
///////////////////////////////////////////////////////////////////////////////////////////////////




bool Cursor::keyDown(Key::Type key) const
{
	return m_inputDevice->keyDown(key);
}
///////////////////////////////////////////////////////////////////////////////////////////////////

bool Cursor::keyPressed(Key::Type key) const
{
	return m_inputDevice->keyPressed(key);
}
///////////////////////////////////////////////////////////////////////////////////////////////////

bool Cursor::keyClicked(Key::Type key) const
{
	return m_inputDevice->keyClicked(key);
}
///////////////////////////////////////////////////////////////////////////////////////////////////
